# 编译器和编译选项
CXX := g++
CXXFLAGS := -std=c++11 -I/usr/local/include/hiredis -I/usr/include/mysql -I./include
LDFLAGS := -L/usr/local/lib -lhiredis -L/usr/lib/mysql -lmysqlclient -lpthread

# 源文件和对象文件
SRCDIR := src
SRCFILES := $(wildcard $(SRCDIR)/*.cpp) main.cpp
OBJS := $(SRCFILES:.cpp=.o)
TARGET := server

# 默认目标
all: $(TARGET)

# 链接可执行文件
$(TARGET): $(OBJS)
	$(CXX) $(CXXFLAGS) -o $@ $^ $(LDFLAGS)

# 编译源文件
$(SRCDIR)/%.o: $(SRCDIR)/%.cpp
	$(CXX) $(CXXFLAGS) -c $< -o $@

main.o: main.cpp
	$(CXX) $(CXXFLAGS) -c $< -o $@

# 清理目标
clean:
	rm -f $(OBJS) $(TARGET)
